package com.easyUploader.property;

import com.common.util.StringUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.io.File;

/**
 * 本地文件存储相关属性
 * @author 大忽悠
 * @create 2022/10/30 9:57
 */
@Component
@ConfigurationProperties(prefix = "uploader.file")
@Data
public class LocalFileProperty {
    /**
     * 默认存储路径为当前用户家目录下的easyUploader
     */
    public static final String DEFAULT_BASE_DIR=System.getProperty("user.home")+File.separator+"easyUploader";
    /**
     * 默认的分片大小：20MB
     */
    public static final long DEFAULT_CHUNK_SIZE = 20 * 1024 * 1024;
    /**
     * 压缩文件临时存放目录--相对于base-dir而言的
     */
    public static final String DEFAULT_ZIP_TEMP_DIR = "temp/zip";
    /**
     * 默认域名前缀
     */
    public static final String DEFAULT_DOMAIN_PREFIX = "http://localhost:5200";
    /**
     * 默认存储桶
     */
    public static final String DEFAULT_BUCKET = "default";
    /**
     * 本地文件存储的基础目录
     */
    private String baseDir=DEFAULT_BASE_DIR;
    /**
     * 分片大小
     */
    private long  chunkSize=DEFAULT_CHUNK_SIZE;
    /**
     * 压缩文件存放目录
     */
    private String zipTempDir=DEFAULT_ZIP_TEMP_DIR;
    /**
     * 域名前缀
     */
    private String domainPrefix=DEFAULT_DOMAIN_PREFIX;

    public void setBaseDir(String baseDir) {
        this.baseDir = StringUtil.cleanEndFileSeparator(baseDir);
    }

    public String getZipTempDir() {
        return StringUtil.pathMerge(true,baseDir,zipTempDir);
    }

    public void setZipTempDir(String zipTempDir) {
        this.zipTempDir = StringUtil.cleanStartAndEndFileSeparator(zipTempDir);
    }

    public void setDomainPrefix(String domainPrefix) {
        this.domainPrefix = StringUtil.cleanEndFileSeparator(domainPrefix);
    }
}
